package com.jiezheng.huinong.db.conf;

import java.util.List;

import com.jiezheng.huinong.model.IndexInfo;
import com.jiezheng.huinong.model.PayIndexInfo;

public interface IIndexManageDAO {
	/**
	 * 增加指标
	 */
	public void addIndex(IndexInfo index);

	/**
	 * 删除指标
	 */
	public void deleteIndex(IndexInfo index );

	/**
	 * 修改指标
	 */
	public void modifyIndex(IndexInfo index);

	/**
	 * 根据指标的标识获取相关的指标信息
	 * 
	 * @param indexNo
	 * @return
	 */
	public IndexInfo getIndexInfo(IndexInfo index);
	
	/**
	 * 根据指标的标识获取相关的指标详情(关联后的数据)
	 * 
	 * @param indexNo
	 * @return
	 */
	public IndexInfo getDetailIndexInfo(IndexInfo index);

	/**
	 * 取得所有指标信息的总数
	 * 
	 * @return
	 */
	public Integer getTotalIndexNum(IndexInfo cond);
	
	/**
	 * 取得所有指标信息的总数,待送审
	 * 
	 * @return
	 */
	public Integer getTotalToAuditIndexNum(IndexInfo cond);
	
	
	
	/**
	 * 取得所有指标信息的总数, 用于挂接
	 * 
	 * @return
	 */
	public Integer getTotalJointIndexNum(IndexInfo cond);

	/**
	 * 分页取指标信息数据
	 * **/
	public List<IndexInfo> getIndexInfo(IndexInfo cond, Integer startRow, Integer rows);
	
	/**
	 * 分页取指标信息数据, 待送审
	 * **/
	public List<IndexInfo> getToAuditIndexInfo(IndexInfo cond, Integer startRow, Integer rows);
	
	/**
	 * 分页取指标信息数据, 用于挂接
	 * **/
	public List<IndexInfo> getJointIndexInfo(IndexInfo cond, Integer startRow, Integer rows);
	
	
	/**
	 * 改变指标状态
	 */
	public void changeStatus(IndexInfo index);
	
	/**
	 * 减少金额余额
	 */
	public void reduceSpareMoney(IndexInfo index);
	
	/**
	 * 增加金额余额
	 */
	public void increaseSpareMoney(IndexInfo index);

	/**
	 * 支付凭证的指标相关信息
	 */
	public PayIndexInfo getPayIndexInfo(IndexInfo index);
	
	/**
	 * 取得所有的指标统计信息
	 * @return
	 */
	List<IndexInfo> getStatisticIndexInfo();
	
}
